package de.tum.in.elitese.wahlsys.persister.persistence_objects;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import de.tum.in.elitese.wahlsys.persister.PersistenceObject;

/**
 * see Table STIMMZETTEL
 * 
 * @author Christoph Frenzel
 * 
 */
public class Stimmzettel extends PersistenceObject {
	private static final List<String> FIELD_NAMES = Collections
			.unmodifiableList(Arrays.asList(new String[] { "ID", "WAHLBEZIRK",
					"WAHLKREIS", "BUNDESLAND", "ZWEITSTIMME", "ERSTSTIMME",
					"PARTEI" }));

	private static final String TABLE_NAME = "STIMMZETTEL";

	private Direktkandidat fErststimme;

	private int fId;

	private Wahlbezirk fWahlbezirk;

	private Landesliste fZweitstimme;

	public Direktkandidat getErststimme() {
		return fErststimme;
	}

	public int getId() {
		return fId;
	}

	@Override
	public List<String> getPersistanceStrings() {
		List<Object> values = new ArrayList<Object>(7);
		values.add(getId());
		values.add(getWahlbezirk().getName());
		values.add(getWahlbezirk().getWahlkreis().getNummer());
		values.add(getWahlbezirk().getWahlkreis().getBundesland());
		values.add(getZweitstimme().getId());
		values.add(getZweitstimme().getPartei().getName());
		values.add(getErststimme().getPersonalausweisnummer());

		List<String> result = new ArrayList<String>(1);
		result.add(createInsertString(TABLE_NAME, FIELD_NAMES, Collections
				.unmodifiableList(values)));
		return result;
	}

	public Wahlbezirk getWahlbezirk() {
		return fWahlbezirk;
	}

	public Landesliste getZweitstimme() {
		return fZweitstimme;
	}

	public void setErststimme(Direktkandidat erststimme) {
		fErststimme = erststimme;
	}

	public void setId(int id) {
		fId = id;
	}

	public void setWahlbezirk(Wahlbezirk wahlbezirk) {
		fWahlbezirk = wahlbezirk;
	}

	public void setZweitstimme(Landesliste zweitstimme) {
		fZweitstimme = zweitstimme;
	}
}
